//package com.wgj.android.accesslibility.job;
//import android.annotation.SuppressLint;
//import android.annotation.TargetApi;
//import android.app.Notification;
//import android.app.PendingIntent;
//import android.content.BroadcastReceiver;
//import android.content.Context;
//import android.content.Intent;
//import android.content.IntentFilter;
//import android.content.pm.PackageInfo;
//import android.content.pm.PackageManager;
//import android.os.Build;
//import android.os.Handler;
//import android.os.Looper;
//import android.os.Parcelable;
//import android.util.Config;
//import android.util.Log;
//import android.view.accessibility.AccessibilityEvent;
//import android.view.accessibility.AccessibilityNodeInfo;
//
//import com.jiaai.xui.XUI;
//import com.jiaai.xui.utils.log.XLog;
//import com.qhn.bhne.footprinting.db.BonusHistoryDao;
//import com.wgj.android.BuildConfig;
//import com.wgj.android.accesslibility.AccessibilityHelper;
//import com.wgj.android.accesslibility.IStatusBarNotification;
//import com.wgj.android.accesslibility.config.WXIDManage;
//import com.wgj.android.accesslibility.config.WXPageUIManage;
//import com.wgj.android.accesslibility.config.WXQiangHongBaoConfig;
//import com.wgj.android.accesslibility.service.BaseAccesslibilityServier;
//import com.wgj.android.accesslibility.service.WXQiangHongBaoService;
//
//import com.wgj.android.base.WGJApplication;
//import com.wgj.android.entity.BonusHistory;
//import com.wgj.android.utils.NotifyHelper;
//import  java.util.Date;
//import java.util.List;
//
//
///**
// * ========================================
// * 作    者： 佳爱网络有限公司(wwww.jiaailove.com)
// * 版    本： 1.0
// * 创建日期：  2017/11/14
// * 描    述： 抢红包JOB
// * 修订历吏：
// * =========================================
// */
//public class WXQiangHongBaoAccessbilityJob extends BaseAccessbilityJob {
//    private  static BonusHistoryDao bonusHistoryDao;
//    private static final String TAG = "WXQiangHongBaoAccessbilityJob";
//
//    /** 微信的包名*/
//    public static final String WECHAT_PACKAGENAME = "com.tencent.mm";
//
//    /** 红包消息的关键字*/
//    private static final String HONGBAO_TEXT_KEY = "[微信红包]";
//
//    private static final String BUTTON_CLASS_NAME = "android.widget.Button";
//
//
//
//
//    private static final int WINDOW_NONE = 0;
//    private static final int WINDOW_LUCKYMONEY_RECEIVEUI = 1;
//    private static final int WINDOW_LUCKYMONEY_DETAIL = 2;
//    private static final int WINDOW_LAUNCHER = 3;
//    private static final int WINDOW_OTHER = -1;
//
//    private int mCurrentWindow = WINDOW_NONE;
//
//    private boolean isReceivingHongbao;
//    private PackageInfo mWechatPackageInfo = null;
//    private Handler mHandler = null;
//
//    private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
//        @Override
//        public void onReceive(Context context, Intent intent) {
//            //更新安装包信息
//            updatePackageInfo();
//        }
//    };
//
//    @Override
//    public void onCreateJob(BaseAccesslibilityServier service) {
//        super.onCreateJob(service);
//        bonusHistoryDao=((WGJApplication)service.getApplication()).getDaoSession().getBonusHistoryDao();
//        updatePackageInfo();
//
//        IntentFilter filter = new IntentFilter();
//        filter.addDataScheme("package");
//        filter.addAction("android.intent.action.PACKAGE_ADDED");
//        filter.addAction("android.intent.action.PACKAGE_REPLACED");
//        filter.addAction("android.intent.action.PACKAGE_REMOVED");
//        getContext().registerReceiver(broadcastReceiver, filter);
//    }
//
//    @Override
//    public void onStopJob() {
//        try {
//            getContext().unregisterReceiver(broadcastReceiver);
//        } catch (Exception e) {}
//    }
//
//
//
//    @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
//    @Override
//    public void onNotificationPosted(AccessibilityEvent event) {
//        Notification nf = sbn.getNotification();
//        String text = String.valueOf(sbn.getNotification().tickerText);
//        notificationEvent(text, nf);
//    }
//
//    @Override
//    public boolean isEnable() {
//        return WXQiangHongBaoConfig.isEnableWechat();
//    }
//
//    @Override
//    public String getTargetPackageName() {
//        return WECHAT_PACKAGENAME;
//    }
//
//    @Override
//    public void onReceiveJob(AccessibilityEvent event) {
//        final int eventType = event.getEventType();
//        //通知栏事件
//        if(eventType == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) {
//            Parcelable data = event.getParcelableData();
//            if(data == null || !(data instanceof Notification)) {
//                return;
//            }
//            if(WXQiangHongBaoService.isNotificationServiceRunning() && WXQiangHongBaoConfig.isEnableNotificationService()) { //开启快速模式，不处理
//                    return;
//            }
//            List<CharSequence> texts = event.getText();
//            if(!texts.isEmpty()) {
//                String text = String.valueOf(texts.get(0));
//                notificationEvent(text, (Notification) data);
//            }
//        } else if(eventType == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) {
//            openHongBao(event);
//        }else if(eventType == AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED) {
//            if(mCurrentWindow != WINDOW_LAUNCHER) { //不在聊天界面或聊天列表，不处理
//                return;
//            }
//            if(isReceivingHongbao) {
//                handleChatListHongBao();
//            }
//        }
//    }
//
//    /** 是否为群聊天*/
//    private boolean isMemberChatUi(AccessibilityNodeInfo nodeInfo) {
//        if(nodeInfo == null) {
//            return false;
//        }
//        String id = "com.tencent.mm:id/ces";
//        int wv = getWechatVersion();
//        if(wv <= 680) {
//            id = "com.tencent.mm:id/ew";
//        } else if(wv <= 700) {
//            id = "com.tencent.mm:id/cbo";
//        }
//        String title = null;
//        AccessibilityNodeInfo target = AccessibilityHelper.findNodeInfosById(nodeInfo, id);
//        if(target != null) {
//            title = String.valueOf(target.getText());
//        }
//        List<AccessibilityNodeInfo> list = nodeInfo.findAccessibilityNodeInfosByText("返回");
//
//        if(list != null && !list.isEmpty()) {
//            AccessibilityNodeInfo parent = null;
//            for(AccessibilityNodeInfo node : list) {
//                if(!"android.widget.ImageView".equals(node.getClassName())) {
//                    continue;
//                }
//                String desc = String.valueOf(node.getContentDescription());
//                if(!"返回".equals(desc)) {
//                    continue;
//                }
//                parent = node.getParent();
//                break;
//            }
//            if(parent != null) {
//                parent = parent.getParent();
//            }
//            if(parent != null) {
//                if( parent.getChildCount() >= 2) {
//                    AccessibilityNodeInfo node = parent.getChild(1);
//                    if("android.widget.TextView".equals(node.getClassName())) {
//                        title = String.valueOf(node.getText());
//                    }
//                }
//            }
//        }
//
//
//        if(title != null && title.endsWith(")")) {
//            return true;
//        }
//        return false;
//    }
//
//    /** 通知栏事件*/
//    private void notificationEvent(String ticker, Notification nf) {
//        String text = ticker;
//        int index = text.indexOf(":");
//        if(index != -1) {
//            text = text.substring(index + 1);
//        }
//        text = text.trim();
//        if(text.contains(HONGBAO_TEXT_KEY)) { //红包消息
//            newHongBaoNotification(nf);
//        }
//    }
//
//    /** 打开通知栏消息*/
//    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
//    private void newHongBaoNotification(Notification notification) {
//        isReceivingHongbao = true;
//        //以下是精华，将微信的通知栏消息打开
//        PendingIntent pendingIntent = notification.contentIntent;
//        boolean lock = NotifyHelper.isLockScreen(getContext());
//
//        if(!lock) {
//            NotifyHelper.send(pendingIntent);
//        } else {
//            NotifyHelper.showNotify(getContext(), String.valueOf(notification.tickerText), pendingIntent);
//        }
//
//        if(lock || WXQiangHongBaoConfig.getWechatMode() != WXQiangHongBaoConfig.WX_MODE_0) {
//            NotifyHelper.playEffect(getContext());
//        }
//    }
//
//    @SuppressLint("LongLogTag")
//    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
//    private void openHongBao(AccessibilityEvent event) {
//        Log.e(TAG,event.getClassName().toString());
//        if(WXPageUIManage.isLuckyMoneyReceiveUI(event.getClassName().toString())) {
//            mCurrentWindow = WINDOW_LUCKYMONEY_RECEIVEUI;
//            //点中了红包，下一步就是去拆红包
//            handleLuckyMoneyReceive();
//        } else if(WXPageUIManage.isLuckyMoneyDetailUI(event.getClassName().toString())) {
//            mCurrentWindow = WINDOW_LUCKYMONEY_DETAIL;
//            addHongBaoHistory();//添加红包领取记录
//            //拆完红包后看详细的纪录界面
//            if(WXQiangHongBaoConfig.getWechatAfterOpenHongBao()) { //返回主界面，以便收到下一次的红包通知
//                AccessibilityHelper.performHome(getService());
//            }
//        } else if("com.tencent.mm.ui.LauncherUI".equals(event.getClassName())) {
//            mCurrentWindow = WINDOW_LAUNCHER;
//            //在聊天界面,去点中红包
//            handleChatListHongBao();
//        } else {
//            mCurrentWindow = WINDOW_OTHER;
//        }
//    }
//
//    /**
//     * 点击聊天里的红包后，显示的界面
//     * */
//    @SuppressLint("LongLogTag")
//    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
//    private void handleLuckyMoneyReceive() {
//        AccessibilityNodeInfo nodeInfo = getService().getRootInActiveWindow();
//        if(nodeInfo == null) {
//            Log.w(TAG, "rootWindow为空");
//            return;
//        }
//
//        AccessibilityNodeInfo targetNode = null;
//       int wechatVersion = getWechatVersion();
//
//        if (wechatVersion < WXIDManage.USE_ID_MIN_VERSION) {
//            targetNode = AccessibilityHelper.findNodeInfosByText(nodeInfo, "拆红包");
//        } else {
//            String buttonId = WXIDManage.getHongBaoId(wechatVersion);
//            if(buttonId != null) {
//                targetNode = AccessibilityHelper.findNodeInfosById(nodeInfo, buttonId);
//            }
//           if(targetNode == null) {
//                //分别对应固定金额的红包 拼手气红包
//                AccessibilityNodeInfo textNode = AccessibilityHelper.findNodeInfosByTexts(nodeInfo, "发了一个红包", "给你发了一个红包", "发了一个红包，金额随机");
//
//                if(textNode != null) {
//                    for (int i = 0; i < textNode.getChildCount(); i++) {
//                        AccessibilityNodeInfo node = textNode.getChild(i);
//                        if (BUTTON_CLASS_NAME.equals(node.getClassName())) {
//                            targetNode = node;
//                            break;
//                        }
//                    }
//                }
//            }
//            if(targetNode == null) { //通过组件查找
//                targetNode = AccessibilityHelper.findNodeInfosByClassName(nodeInfo, BUTTON_CLASS_NAME);
//            }
//        }
//        if(targetNode != null) {
//            final AccessibilityNodeInfo n = targetNode;
//            long sDelayTime = WXQiangHongBaoConfig.getWechatOpenDelayTime();//打开红包的时间
//            if(sDelayTime != 0) {
//                getHandler().postDelayed(new Runnable() {
//                    @Override
//                    public void run() {
//                        AccessibilityHelper.performClick(n);
//                    }
//                }, sDelayTime);
//            } else {
//                AccessibilityHelper.performClick(n);
//            }
//
//        }
//    }
//
//    /**
//     * 收到聊天里的红包
//     * */
//    @SuppressLint("LongLogTag")
//    @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
//    private void handleChatListHongBao() {
//        int mode = WXQiangHongBaoConfig.getWechatMode();
//        if(mode == WXQiangHongBaoConfig.WX_MODE_3) { //只通知模式
//            return;
//        }
//
//        AccessibilityNodeInfo nodeInfo = getService().getRootInActiveWindow();
//        if(nodeInfo == null) {
//            Log.w(TAG, "rootWindow为空");
//            return;
//        }
//        boolean isMember = isMemberChatUi(nodeInfo);
//        if(mode == WXQiangHongBaoConfig.WX_MODE_1 && isMember) {//过滤群聊
//            return;
//        } else if(mode == WXQiangHongBaoConfig.WX_MODE_2 && !isMember) { //过滤单聊
//            return;
//        }
//
//
//        List<AccessibilityNodeInfo> list = nodeInfo.findAccessibilityNodeInfosByText("领取红包");
//
//        if(list != null && list.isEmpty()) {
//            // 从消息列表查找红包
//            AccessibilityNodeInfo node = AccessibilityHelper.findNodeInfosByText(nodeInfo, "[微信红包]");
//            if(node != null) {
//                if(BuildConfig.DEBUG) {
//                    Log.i(TAG, "-->微信红包:" + node);
//                }
//                isReceivingHongbao = true;
//                AccessibilityHelper.performClick(nodeInfo);
//            }
//        } else if(list != null) {
//            if (isReceivingHongbao){
//                //最新的红包领起
//                AccessibilityNodeInfo node = list.get(list.size() - 1);
//                AccessibilityHelper.performClick(node);
//                isReceivingHongbao = false;
//            }
//        }
//    }
//
//    private Handler getHandler() {
//        if(mHandler == null) {
//            mHandler = new Handler(Looper.getMainLooper());
//        }
//        return mHandler;
//    }
//
//    /** 获取微信的版本*/
//    private int getWechatVersion() {
//        if(mWechatPackageInfo == null) {
//            return 0;
//        }
//        XLog.i(mWechatPackageInfo.versionCode+"");
//
//        return  mWechatPackageInfo.versionCode;
//    }
//
//    /** 更新微信包信息*/
//    private void updatePackageInfo() {
//        try {
//            mWechatPackageInfo = getContext().getPackageManager().getPackageInfo(WECHAT_PACKAGENAME, 0);
//        } catch (PackageManager.NameNotFoundException e) {
//            e.printStackTrace();
//        }
//    }
//
//    @SuppressLint("LongLogTag")
//    private  void addHongBaoHistory(){
//        AccessibilityNodeInfo nodeInfo = getService().getRootInActiveWindow();
//        if(nodeInfo == null) {
//            Log.w(TAG, "rootWindow为空");
//            return;
//        }
//        int version=getWechatVersion();
//        final String friends=AccessibilityHelper.findNodeInfosById(nodeInfo,WXIDManage.getHongBaoFriendId(version)).getText().toString();
//        final double money=Double.valueOf(AccessibilityHelper.findNodeInfosById(nodeInfo,WXIDManage.getHongBaoMoneyId(version)).getText().toString());
//
//        new Handler().postDelayed(new Runnable() {
//            @Override
//            public void run() {
//                BonusHistory bonusHistory=new BonusHistory();
//                bonusHistory.setTime(new Date().getTime());
//                bonusHistory.setFriends(friends);
//                bonusHistory.setMoney(money);
//                bonusHistoryDao.insert(bonusHistory);
//            }
//        },200);
//    }
//}
